iT邦幫忙

DAY 9
1

Android 探索之備忘錄系列 第 9

Android 探索之備忘錄 [Day9-JDGUI and DEX2JAR]

  • 分享至 

  • xImage
  •  

今天介紹一下如何簡單上手反編譯Android app

首先需要下載兩個工具以及準備一個要被反編譯的apk檔案

  1. JD-GUI: http://jd.benow.ca/
    下載jd-gui-0.3.5.linux.i686.tar.gz
  2. DEX2JAR: https://code.google.com/p/dex2jar/downloads/list
    下載dex2jar-0.0.9.15.zip

接著把兩個壓縮檔都解壓縮後, 把apk檔放到dex2jar-0.0.9.15目錄底下

再執行./d2j-dex2jar.sh hello.apk

會在當前目錄產生一個hello-dex2jar.jar檔案

最後使用jd-gui打開就可以看到source code(Java部分)囉!

以Linux command line為例:

#先建立一個工作目錄
$mkdir jdgui-works
#把需要的東西都搬進去
$mv jd-gui-0.3.5.linux.i686.tar.gz jdgui-works
$mv  dex2jar-0.0.9.15.zip jdgui-works
$mv hello.apk jdgui-works
#進入資料夾解壓縮
$cd jdgui-works
$tar -xzvf jd-gui-0.3.5.linux.i686.tar.gz
$unzip dex2jar-0.0.9.15.zip
#把apk搬到dex2jar的資料夾下
$mv hello.apk dex2jar-0.0.9.15/
#進入dex2jar的資料夾
$cd dex2jar-0.0.9.15
#反編譯
$./d2j-dex2jar.sh hello.apk
#回到上一層資料夾
$cd ../
#用jd-gui開啟jar
$./jd-gui dex2jar-0.0.9.15/hello-dex2jar.jar

畫面如下:

P.S.1 雖然有些物件會被換成ID形式, 不過如果沒有經Proguard保護的apk, 大致都還可看出程式脈絡

P.S.2 未經原作者允許而反編譯apk可能會有觸法的風險, 請小心謹慎, 本篇僅供研究參考使用


上一篇
Android 探索之備忘錄 [Day8-Wakelock]
下一篇
Android 探索之備忘錄 [Day10-WakefulBroadcastReceiver]
系列文
Android 探索之備忘錄30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言